Normalizing and Denormalizing Models

Denormalization is a database optimization technique that adds data redundancy to tables in data models to improve query performance. Using denormalization, you can also denormalize the structure of logical models such that you can build physical models that are designed effectively for target databases.

To summarize, denormalization is the process of converting normalized schema to non-normalized form for data optimization and to support time-sensitive database operations.

Denormalization is not the reverse of normalization. It is an optimization technique that you can apply after normalizing a data model.

Normalization is a process that reorganizes data in a relational construct to minimize redundancy and non-relational constructs. Normalization enables you to control and eliminate data redundancy by removing model structures that provide multiple ways to know the same fact.

The normalization process follows a bottom-up approach, whereas the denormalization process follows a top-down approach. Based on the target database type and the process that you perform, following changes occur in your data models:

  • Denormalization: Converting SQL models to NoSQL models

    • One-to-one relationships are converted to Object datatype.

    • One-to-many relationships are converted to an ArrayOfObject datatype.

  • Normalization: Converting NoSQL models to SQL models

    • Objects datatype is converted to one-to-one relationships.

    • Array of Objects datatype is converted to one-to-many relationships.

Starting erwin Data Modeler (erwin DM14.0, the normalization-denormalization process offers complete logical and physical separation, where the logical side does not contain hierarchical data. This capability is available for MongoDB, DynamoDB, Couchbase, Google BigQuery, AVRO, JSON, and Parquet data models. For these models, you can view the logical side as a logical model and the physical side as a database model, and you can modify both the logical and the physical side of the model.

The following topics explain the normalization and denormalization processes in detail: